static_library("Passes") {
  output_name = "LLVMBOLTPasses"
  configs += [ "//llvm/utils/gn/build:bolt_code" ]
  deps = [
    "//bolt/lib/Core",
    "//bolt/lib/Utils",
    "//llvm/lib/CodeGen/AsmPrinter",
    "//llvm/lib/MC",
    "//llvm/lib/Support",
    "//llvm/lib/TargetParser",
    "//llvm/lib/Transforms/Utils",
    "//llvm/utils/gn/build/libs/pthread",
  ]
  sources = [
    "ADRRelaxationPass.cpp",
    "Aligner.cpp",
    "AllocCombiner.cpp",
    "AsmDump.cpp",
    "BinaryFunctionCallGraph.cpp",
    "BinaryPasses.cpp",
    "CMOVConversion.cpp",
    "CacheMetrics.cpp",
    "CallGraph.cpp",
    "CallGraphWalker.cpp",
    "DataflowAnalysis.cpp",
    "DataflowInfoManager.cpp",
    "FixRelaxationPass.cpp",
    "FrameAnalysis.cpp",
    "FrameOptimizer.cpp",
    "HFSort.cpp",
    "HFSortPlus.cpp",
    "Hugify.cpp",
    "IdenticalCodeFolding.cpp",
    "IndirectCallPromotion.cpp",
    "Inliner.cpp",
    "Instrumentation.cpp",
    "JTFootprintReduction.cpp",
    "LivenessAnalysis.cpp",
    "LongJmp.cpp",
    "LoopInversionPass.cpp",
    "MCF.cpp",
    "PLTCall.cpp",
    "PatchEntries.cpp",
    "PettisAndHansen.cpp",
    "RegAnalysis.cpp",
    "RegReAssign.cpp",
    "ReorderAlgorithm.cpp",
    "ReorderData.cpp",
    "ReorderFunctions.cpp",
    "RetpolineInsertion.cpp",
    "ShrinkWrapping.cpp",
    "SplitFunctions.cpp",
    "StackAllocationAnalysis.cpp",
    "StackAvailableExpressions.cpp",
    "StackPointerTracking.cpp",
    "StackReachingUses.cpp",
    "StokeInfo.cpp",
    "TailDuplication.cpp",
    "ThreeWayBranch.cpp",
    "ValidateInternalCalls.cpp",
    "ValidateMemRefs.cpp",
    "VeneerElimination.cpp",
  ]
}
